iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 19
0
Modern Web

和少女工程師一起學 JavaScript 系列 第 19

和少女工程師一起學 JavaScript:Day19 展開與其餘運算符

  • 分享至 

  • xImage
  •  

展開運算符 Spread Operator

「...」 後面必定是陣列

const params = [ "hi", 3 ,true ];
const other = [ 1, 2, ...params ];   //[1,2,"hi",3 true]
  • 用在函式呼叫

    function sum(a,b,c){
    	return a + b + c
    }
    
    const args =[1,2,3];
    
    sum(...args)          
    
    //6
    
  • 把可迭代(String/Array/TypedArray/Map/Set)或與陣列相似的物件轉成陣列

    const aString = "foo"
    const char = [...aString]
    
    //[ "f", "o","o" ]
    
  • 將類陣列轉為陣列

    let doms = document.querySelectorAll('li')
    let newDoms = [...doms] //變成陣列了
    

其餘運算符 Other Operator

收集剩餘的值,並轉成陣列
位置必定在最後一位

function leftMoney(ming, ...money){
	console.log(ming, money)
}

leftMoney('小明', 100, 200, 300) //小明 [100, 200, 300]
  • 將「不確定數量的傳入參數值」在函式中轉成陣列來運算
function sum(...numbers){
	const result = 0
	
	numbers.forEach(function (number)){
		result += number
	})
	return result
	} 
}

sum(1) //1
sum(1,2,3,4,5) //15
  • 用在解構賦值
const [x, ...y] = [1, 2, 3]

console.log(x) //1
console.log(y) //[2,3]
const [x, y, ...z] = [1]

console.log(x) //1
console.log(y) //undefined
console.log(z) //[]

其餘參數的值在傳入的時候沒有實際值時,會是空陣列


上一篇
和少女工程師一起學 JavaScript:Day18 解構賦值
下一篇
和少女工程師一起學 JavaScript:Day20 ES6 module
系列文
和少女工程師一起學 JavaScript 27
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言